package query

//Request 客户端请求
type Request struct {
	PageIndex   int      `json:"pageIndex"`
	PageLineNum int      `json:"pageLineNum"`
	UnitBase    int      `json:"unitBase"`
	Row         *Axis    `json:"row"`
	Column      *Axis    `json:"column"`
	Measures    []string `json:"measures"`
	Context     []string `json:"context"`
}

//Axis 数据轴
type Axis struct {
	Hierarchy  string   `json:"hierarchy"`
	Properties []string `json:"Properties"`
	Sorts      []Sort   `json:"sorts"`
	Filters    []Filter `json:"filters"`
}

//Sort 排序
type Sort struct {
	Type    string `json:"type"`
	Column  string `json:"column"`
	Order   string `json:"order"`
	Context string `json:"context"`
}

//Filter 过滤
type Filter struct {
	Type     string `json:"type"`
	Name     string `json:"name"`
	Operator string `json:"operator"`
	Value    string `json:"value"`
	Context  string `json:"context"`
}

//Response 返回客户端的数据格式
type Response struct {
	Columns  []Column                 `json:"columns"`
	DataList []map[string]interface{} `json:"dataList"`
	Total    int                      `json:"total"`
}

//Column 要返回的数据列
type Column struct {
	Title     string   `json:"title"`
	DataIndex string   `json:"dataIndex"`
	DataType  string   `json:"dataType"`
	Key       string   `json:"key"`
	Width     float32  `json:"width"`
	Fixed     string   `json:"Fixed"`
	Type      string   `json:"type"`
	Children  []Column `json:"children"`
}
